import util from '@/util/util.js'
import api from '@/api'
import router from '@/router'

export default {
  namespaced: true,
  actions: {
    /**
     * @description 登录
     * @param {Object} context
     * @param {Object} payload username {String} 用户账号
     * @param {Object} payload password {String} 密码
     * @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
     */
    async login({dispatch},data = {}) {
      console.log(dispatch)
      const res =  await api.SYSTEM_USER_LOGIN(data)
      // 设置 cookie 一定要存 uuid 和 token 两个 cookie
      // 整个系统依赖这两个数据进行校验和存储
      // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
      // token 代表用户当前登录状态 建议在网络请求中携带 token
      // 如有必要 token 需要定时更新，默认保存一天
      util.cookies.set('uuid', res.userId)
      util.cookies.set('token', res.access_token)
    },
    /**
     * @description 登录
     * @param {Object} context
     * @param {Object} payload username {String} 用户账号
     * @param {Object} payload password {String} 密码
     * @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
     */
    async gitee({dispatch},data = {}) {
      console.log("sort account gitee dispatch:"+dispatch)
      const res =  await api.SYSTEM_USER_LOGIN_GITEE(data)
      // 设置 cookie 一定要存 uuid 和 token 两个 cookie
      // 整个系统依赖这两个数据进行校验和存储
      // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
      // token 代表用户当前登录状态 建议在网络请求中携带 token
      // 如有必要 token 需要定时更新，默认保存一天
      util.cookies.set('uuid', res.userId)
      util.cookies.set('token', res.access_token)
    },
    /**
     * @description 注销用户并返回登录页面
     * @param {Object} context
     * @param {Object} payload confirm {Boolean} 是否需要确认
     */
    async logout() {
       await api.SYSTEM_USER_LOGOUT({})
      /**
       * @description 注销
       */
        // 删除cookie
        util.cookies.remove('token')
        util.cookies.remove('uuid')
        // 跳转路由
        router.push({name: 'login'})
      }
  ,
  async userInfo({dispatch},data = {}){
    console.log(dispatch)
    await api.SYSTEM_USER_INFO(data)
  }
  }
}
